// SearchAlgorithm.hpp

#pragma once

#include <opencv2/opencv.hpp>
#include <vector>
#include <queue>

struct Point
{
    int x;
    int y;
    bool operator==(const Point &other) const { return x == other.x && y == other.y; }
};

class SearchAlgorithm
{
public:
    virtual ~SearchAlgorithm() = default;
    virtual std::vector<Point> search(std::vector<std::vector<int>> &grid, Point start, Point end, cv::Mat &image, int occ_size) = 0;
};

